from core.page.login_page import LoginPage  # YAML模式页面
# from core.page.slider_verify_page_manual import SliderVerifyPage  # 新增Page子类
# from core.page.profile_page import ProfilePage  # 新增Page子类（可选）
from core.page.login_page import BasePage


# from core.page.play_page import PlayPage    # 手动定义模式页面

class PageFactory:
    # 页面名称→页面类的映射（两种模式的页面统一管理）
    _page_mapping = {
        "login": LoginPage  # YAML模式
        # "slider_verify": SliderVerifyPage,  # 新增：滑块验证页
        # "profile": ProfilePage  # 新增：个人中心页（可选）
        # 手动定义模式
    }

    @classmethod
    def create_page(cls, page_name: str, driver) -> BasePage:
        """创建页面实例（自动适配两种模式）"""
        page_class = cls._page_mapping.get(page_name.lower())
        if not page_class:
            raise ValueError(f"未注册页面：{page_name}（请在PageFactory中添加映射）")

        # 创建实例并返回（每个实例都传入独立的driver，适配并发）
        return page_class(driver)  # 两种模式的页面初始化方式一致
